package com.ys.p1LinkedList了解;

import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;

/**
 * 描述:
 * * 1.LinkedList的概述
 * *   LinkedList类是List接口的实现类，而List接口是Collection的子接口，因此LinkedList类可以使用List接口和Collection接口的所有方法。
 * * 2.LinkedList的底层
 * *   LinkedList的底层采用了“双链表”来实现，适合做“插入”和“删除”操作，不适合做“查找”操作。
 * *   注意：如果根据“序号”来做“插入”和“删除”操作，那么效率依旧很低，因为需要通过遍历来找到“插入”或“删除”的节点。
 * * 3.LinkedList的特点
 * *   a)当链表中存储的数据量较少时，并且常做根据索引“插入”和“删除”操作，很少做根据索引“查找”操作，那么建议使用LinkedList类
 * *      --> 如果操作的数据量很大，建议考虑别的数据结构。
 * *   b)LinkedList集合存储的数据是有序的，并且可以存储null。
 * *   c)LinkedList集合还可以存储相同的元素值。
 *
 * @author CodeYang
 * @version 2020/12/25 19:11
 */
public class linkedlist的使用02 {

    public static void main(String[] args) {

        List<String> list = new LinkedList<>();
        // 添加
        list.add("1");
        list.add("2");
        list.add(null);
        list.add("4");
        list.add(null);
        list.add("6");
        // 2删除
        // 2-1 boolean remove(Object o); 根据传入对象来删除
        list.remove("14");
        // 2-2  根据索引来删除
        list.remove(0);
        list.add(1,"插入元素008");

        // 遍历   get(index) 索引值
        for (int i = 0; i <list.size() ; i++) {
            System.out.println(list.get(i));
        }
        // 把LinkedList集合转化为数组
        Object[] objects = list.toArray();
        System.out.println(Arrays.toString(objects));


    }
}
